Let cconv use :fun-body in special forms that need it.
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 11 Feb 2011 22:30:02 +0000 (17:30 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 11 Feb 2011 22:30:02 +0000 (17:30 -0500)
commita2a11e6792213fac4e0330ab191ffd1872244c3c
tree07a65733dee264ff424253f5e0fabbc5715ff9b2
parent8a9e49c0225bdcd41f3b84e6c24365a2311062e7
Let cconv use :fun-body in special forms that need it.
* lisp/emacs-lisp/cconv.el (cconv-closure-convert): Drop `toplevel' arg.
(cconv-closure-convert-toplevel): Remove.
(cconv-lookup-let): New fun.
(cconv-closure-convert-rec): Don't bother with defs-are-legal.
Use :fun-body to handle special forms that require closing their forms.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file-form, byte-compile):
Use cconv-closure-convert instead of cconv-closure-convert-toplevel.
(byte-compile-lambda, byte-compile-make-closure):
* lisp/emacs-lisp/byte-lexbind.el (byte-compile-maybe-push-heap-environment):
Make sure cconv did its job.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): Check stack-depth
before using it.
* lisp/dired.el (dired-desktop-buffer-misc-data): Don't use a dynamic var as
function argument.
lisp/ChangeLog
lisp/dired.el
lisp/emacs-lisp/byte-lexbind.el
lisp/emacs-lisp/byte-opt.el
lisp/emacs-lisp/bytecomp.el
lisp/emacs-lisp/cconv.el
lisp/mpc.el